﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;


namespace MainFrame
{
    public class GlobalImage
    {
        //public static volatile Mat MeasureMat;//测量对应的Mat
        //public static volatile Mat FweldMat;//前焊接对应的Mat
        //public static volatile Mat LweldMat;//后焊接对应的Mat

        //public static volatile HikVision hik_Fweld;//前焊接相机操作对应
        //public static volatile HikVision hik_Lweld;//后焊接相机操作对应
        //public static volatile HikVision hik_Meausre;//测量相机操作对应
        //public static volatile HikVision getCamera;//获取当前连接的所有相机

        public static volatile CalibrationData cablibData_Fweld=new CalibrationData();//前焊接工位标定界面数据对应
        public static volatile CalibrationData cablibData_Lweld=new CalibrationData();//后焊接工位标定界面数据对应
        public static volatile CalibrationData cablibData_Measure=new CalibrationData();//测量工位标定界面数据对应

        public static int camNumber = 3;//相机数量
        public static string[] camSerialNo = new string[camNumber];

        public static volatile int imageProcMode_F = 0;//相机对应的图像处理模式;0--普通显示，1--标定，2--识别或测量
        public static volatile int imageProcMode_L = 0;//相机对应的图像处理模式;0--普通显示，1--标定，2--识别或测量
        public static volatile int imageProcMode_M = 0;//相机对应的图像处理模式;0--普通显示，1--标定，2--识别或测量

        public static volatile Task<double[]> Fcalib_task;//标定用task
        public static volatile Task<double[]> Lcalib_task;//标定用task
        public static volatile Task<double[]> Mcalib_task;//标定用task

        public static volatile Task<double[]> F_identify_task;//前焊接定位用task
        public static volatile Task<double[]> L_identify_task;//后焊接定位用task
        public static volatile Task<double[]> M_identify_task;//尺寸测量位用task

        public static string templateImageF_Name="template_F.bmp";//前焊接位模板匹配模板文件名
        public static string templateImageL_Name="template_L.bmp";//后焊接位模板匹配模板文件名
    }
    public enum e_imageProcMode
    {
        justDisplay=0,
        calibrate,
        identify
    }
}
